package me.mylist;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.function.Consumer;

public class A02_ListDemo2 {
    public static void main(String[] args) {
        //List系列集合的五种遍历方式
        List<String> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");

        //1.迭代器遍历
        //创建迭代器对象
        /*Iterator<String> it = list.iterator();
        while (it.hasNext()) {
            String str = it.next();
            System.out.print("--");
            System.out.print(str);
        }*/

        //2.增强for遍历
        for (String s : list) {
            System.out.println(s);
        }
        System.out.println("--------------");

        //3.lambda表达式
        //forEach方法的底层就是一个循环遍历，依次得到每一个元素
        //并把元素传递给accept方法
        list.forEach(s -> System.out.println(s));
        System.out.println("--------------");

        //4.普通for循环遍历
        for (int i = 0; i < list.size(); i++) {
            String s = list.get(i);
            System.out.println(s);
        }

        //5.列表迭代器
        //获取列表迭代器的对象
        ListIterator<String> it = list.listIterator();
        while (it.hasNext()) {
            String str = it.next();
            if ("bbb".equals(str)) {
                it.add("qqq");
            }
        }
        System.out.println(list);
    }
}
